#pragma once
#include <string>
#include <vector>
#include "ISupportPositionInfo.h"
#include "ILayoutObjectCollection.h"

#ifdef WEBAGGREGATORDLL_EXPORT
# define WEBAGGREGATORDLL_API __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define WEBAGGREGATORDLL_API __declspec (dllimport)
#endif /* Not BUILDING_DLL */


namespace WebAggregator
{
	namespace dataGrabber
	{
		class ILayoutAwareObject : public ISupportPositionInfo
		{
		private:
			ILayoutObjectCollection* col;

		public:
			WEBAGGREGATORDLL_API ILayoutAwareObject(ILayoutObjectCollection* collection);
			WEBAGGREGATORDLL_API ILayoutAwareObject* neighbor_left();
			WEBAGGREGATORDLL_API ILayoutAwareObject* neighbor_right();
			WEBAGGREGATORDLL_API ILayoutAwareObject* neighbor_top();
			WEBAGGREGATORDLL_API ILayoutAwareObject* neighbor_down();
			WEBAGGREGATORDLL_API ILayoutAwareObject* selectLayoutObjectByXPath(std::string xpath);
		};
	}
}